<?php

namespace maotool\util;

use maotool\object\StrUtil;

class PhoneUtil
{

    /**
     * 验证是否为手机号码（中国大陆）
     * @param $value string 值
     * @return bool 是否为手机号码（中国大陆）
     */
    public static function isPhone($value)
    {
        // 检查是否为空
        if (empty($value)) {
            return false;
        }

        // 手机号码正则表达式验证
        // 中国大陆手机号码以1开头，第二位为3-9，总长度为11位
        $pattern = '/^1[3-9]\d{9}$/';

        return preg_match($pattern, $value) === 1;
    }

    /**
     * 验证是否为座机号码（中国大陆）
     * @param $value string 值
     * @return bool 是否为座机号码（中国大陆）
     */
    public static function isTel($value)
    {
        // 检查是否为空
        if (empty($value)) {
            return false;
        }

        // 座机号码正则表达式验证
        // 支持以下格式：
        // 0XXX-XXXXXXX
        // 0XXX-XXXXXXXX
        // 0XX-XXXXXXX
        // 0XX-XXXXXXXX
        // XXXX-XXXXXXX
        // XXXX-XXXXXXXX
        // 0XXX XXXXXXX
        // 0XXX XXXXXXXX
        // 0XX XXXXXXX
        // 0XX XXXXXXXX
        // XXXX XXXXXXX
        // XXXX XXXXXXXX
        $pattern = '/^(0\d{2,3}[- ]?)?\d{7,8}(-\d{1,6})?$/';

        return preg_match($pattern, $value) === 1;
    }

    /**
     * 隐藏手机号中间4位  替换字符为"*"
     *
     * @param string $phone 手机号码
     * @return string 替换后的字符串
     */
    public static function hideBetween($phone)
    {
        return StrUtil::hide($phone, 3, 7);
    }

}